iT邦幫忙

0

day24 觀察 TCP 三次握手

  • 分享至 

  • xImage
  •  

Wireshark基本使用,今天的目標是,觀察 TCP 三次握手 (3-way handshake)。
三次握手是電腦之間用 TCP 協定建立連線的基本步驟:
Client → Server 發送 SYN (我要連線)
Server → Client 回 SYN, ACK (好的,我準備好)
Client → Server 回 ACK (確認連線成功)

要有一個「Client」和一個「Server」互相連線。
舉例:
你在本機跑一個 server 程式,監聽 127.0.0.1:12345。
你再用另一個 client 程式(或 telnet、nc)去連這個 port。
Wireshark 就會抓到完整的三次握手 (SYN → SYN/ACK → ACK)。

監聽端:
import java.io.;
import java.net.
;

public class Server {
public static void main(String[] args) throws IOException {
// 在 12345 port 上監聽
ServerSocket server = new ServerSocket(12345);
System.out.println("伺服器啟動,在 12345 port 等待連線...");

    // 等待客戶端連線
    Socket socket = server.accept();
    System.out.println("有客戶端連進來了: " + socket.getInetAddress());

    // 傳一點訊息給客戶端
    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
    out.println("Hello from Server!");

    socket.close();
    server.close();
}

}
https://ithelp.ithome.com.tw/upload/images/20251015/20179429QJFnOqMB5a.png

連線端:
import java.io.;
import java.net.
;

public class Client {
public static void main(String[] args) throws IOException {
// 嘗試連線到 localhost 的 12345 port
Socket socket = new Socket("127.0.0.1", 12345);
System.out.println("已連線到伺服器!");

    // 接收伺服器的訊息
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String response = in.readLine();
    System.out.println("收到伺服器回應: " + response);

    socket.close();
}

}
https://ithelp.ithome.com.tw/upload/images/20251015/20179429b9It5GjMm5.png

在Whireshark中:
客戶端(port)對伺服器(12345 port)發送 SYN → 「我要連線」。
伺服器回應 SYN + ACK → 「我收到你的請求,也同意連線」。
客戶端回傳 ACK → 「確認收到伺服器的回應」。
[FIN, ACK] / [ACK] → 這是 四次揮手 (Four-way handshake),用來斷開連線。

學到的概念
監聽(Capture):就是讓 Wireshark 把經過我電腦網卡的封包「抓下來」並記錄。
封包(Packet):網路上的最小單位訊息,包含了誰傳給誰、透過什麼協定、資料內容等等。
協定(Protocol):像是 TCP、UDP、HTTP、DNS,都是通訊規則。Wireshark 會自動辨認並幫我標記。
過濾器(Filter):因為封包太多,我可以輸入條件(例如 http 或 ip.addr == 8.8.8.8)來只看我想要的部分。
這些概念讓我慢慢把原本「模糊的網路」具體化,知道資料實際是怎麼傳遞的。

今天我開始學習 Wireshark 這個工具,它是一款功能強大的封包分析器。透過它,我能夠「監聽」電腦網路介面上的資料封包,並把這些封包的內容顯示出來。簡單來說,可以讓我看見網路上實際發生的細節。
我實際操作時,先學會了如何選擇網路介面(例如 Wi-Fi),然後點擊開始監聽。畫面上出現了大量的封包清單,每一筆都有時間戳記、來源 IP、目的地 IP、協議(如 TCP/UDP/HTTP)、還有封包長度。雖然一開始看起來很複雜,但我理解到這些都是「正在我的電腦和網路之間真實發生的事情」。
今天的重點是,我第一次用 Wireshark,學會了基本的「監聽封包」操作,理解了監聽、封包、協定與過濾器的概念,並且對網路傳輸有了更直觀的認識。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言